Method and system of launching applications from a button of a browser

ABSTRACT

A system and method of launching an application from a button of a browser is disclosed, and includes providing one or more buttons, used with a downloadable toolbar for an Internet browser, which are configured to launch an external application. The method comprises associating the application to be launched with an identification code, pre-configuring the client with the identification code and information necessary to launch the application, and transmitting a plurality of button characteristics which define button behavior. In the case of launching an external application, button characteristics comprise at least the application identification code.

RELATED APPLICATIONS

This application is a Continuation-In-Part of U.S. Utility patent application Ser. No. 10/794,435, filed Mar. 5, 2004, which claims the benefit of U.S. Provisional App 60/494,691 filed Aug. 21, 2003, the contents of which are incorporated by reference herein in their entirety.

BACKGROUND

1. Field

The present disclosure is directed to computer interfaces and, more particularly, to a method and system of launching an application through a button of a browser.

2. General Background

When accessing the Internet and the World Wide Web, an Internet user typically executes, via a computer, a browser software program such as, for example, Netscape NAVIGATOR or Microsoft Internet EXPLORER™. The browser program (i.e., a browser) establishes a link to the Internet (via a modem and an Internet Service Provider (ISP), for example) and also provides a textual and graphical user interface (e.g., a user interface portion of the application window), and included in the application window, a window portion for displaying Internet content (e.g., a web page viewing portion) and toolbars in the user interface portion for interfacing with the browser.

The toolbars generally allow a user to interface with and/or control the browser. Toolbars can include textual regions, graphical regions, or a combination of both textual and graphical regions. Selecting an item on a toolbar can instruct the browser to perform a certain function, or such selection may open a menu of items from which a user can choose a plurality of items. Other browser toolbars allow a user to enter an Internet address and instruct the browser to navigate to that address. Some of the browser functions that can be implemented include, for example, save, forward, back, stop and refresh.

Browsers generally have now evolved to include functionality that allows a user to make certain modifications to the appearance and/or functionality of, or otherwise customize, the application window. For example a user can add additional buttons or toolbars from sources other than the browser provider, hide toolbars, change the size of the toolbar icons and add additional items to a toolbar.

SUMMARY

An embodiment of the present disclosure includes providing one or more buttons, used with a downloadable toolbar for an Internet browser, which launch an external application. The method comprises associating the application to be launched with an identification code, pre-configuring a client with the identification code and secure information about how to launch the application, and transmitting a fallback URL which provides the ability to download and install the application if the identification code is not recognized by the toolbar.

In one aspect, a method of providing a button of a graphical user interface with the ability to launch an application is disclosed, comprising associating the external application to be launched with an identification code, pre-configuring a client side module in communication with the graphical user interface with the identification code and information necessary to launch the external application, and transmitting the identification code to the client side module for association with the button on the graphical user interface.

In another aspect, a method of launching an application through a button of an internet browser is disclosed, comprising receiving button characteristics at a client side module and associating the button characteristics with the button, the button characteristics comprising at least an identification code, the identification code being representative of the application to be launched, recognizing when the button has been activated by the user, querying the client side module in communication with the button for information regarding the application matching the identification code in response to the button being activated by the user, querying the client side module for information regarding the version of the application to compare with the version number and calling a function to launch the application having the associated identification code.

In yet another embodiment, executable software in the form of a downloadable toolbar for an internet browser is provided with the functionality of launching an application through a button of the downloadable toolbar.

Other objects and features of the present disclosure will become apparent from the following detailed description, considered in conjunction with the accompanying drawing figures. It is understood, however, that the drawings are designed solely for the purpose of illustration and not as a definition of the limits of the disclosure, for which reference should be made to the appended claims.

DRAWINGS

In the drawing figures, which are not to scale, and which are merely illustrative, and wherein like reference numerals depict like elements throughout the several views:

FIG. 1 is a schematic illustrating an exemplary system implemented according to an embodiment of the present disclosure;

FIG. 2 is a flowchart illustrating an exemplary process of providing a button for launching an application according to one embodiment of the disclosure;

FIG. 3 is a flowchart illustrating an exemplary process of launching an application through a button on a browser according to an embodiment of the disclosure;

FIG. 4 is an exemplary screen shot illustrating an exemplary toolbar according to an embodiment of the disclosure;

FIGS. 5 a and 5 b are exemplary screen shots illustrating an exemplary toolbar according to an embodiment of the disclosure;

FIG. 6 is an exemplary screen shot illustrating the process of launching an application through a button on a browser according to an embodiment of the disclosure;

FIG. 7 is an exemplary screen shot illustrating the process of launching an application through a button on a browser according to an embodiment of the disclosure;

DETAILED DESCRIPTION

There will now be shown and described in connection with the attached drawing figures several exemplary embodiments of a system and method of launching an application from a button on a browser.

With reference to FIG. 1, there is shown an exemplary block diagram of a system 100 implemented in accordance with certain embodiments of the disclosure. A computer 150 is connected to the Internet 190. Computer 150 includes an internal bus 164 that facilitates communication of information (i.e., digital data) between and among the various devices of the computer 150 and that also facilitates communication between the computer and external devices and systems via a communication interface 168. A processor 166 coupled to the bus 164 processes information within the computer 150. The computer 150 also includes a memory 160 such as, for example, Random Access Memory (RAM) and/or other equivalent dynamic memory storage devices, coupled to bus 164 for receiving and storing instructions communicated from the processor 166. Memory 160 may also be used to temporarily store variable or other intermediate information while the processor 166 executes instructions. Read-Only-Memory (ROM) 162 is also coupled to the bus | 64 for storing static data and instructions for use by the processor 166.

Various input and output devices are provided as part of computer 150, including, by way of non-limiting example, a display 154 (e.g., cathode ray tube (CRT), liquid crystal display (LCD), etc.), an input device 156 such as a keyboard, and a cursor control device 158 such as a mouse, or trackball. for example. A data storage device 152 such as, for example, a magnetic disk drive and magnetic disk, a CD-ROM drive and CDROM, or other equivalent devices and data storage mediums, is coupled to the bus 164 for communication with the processor 166, main memory 160, and communication interface 168. The storage device 152 preferably has an operating system 170 and an Internet browser software program 172 (i.e., a browser) stored thereon. As will be discussed in greater detail below, a client-side module 174 may also be stored on the data storage device 152.

The computer 150 may communicatively connect to the Internet 190 via the communication interface 168 over one or more transmission media including, but not limited to, coaxial cable, copper wires, and fiber optical cables. Communication between the computer 150 and the Internet 190 may also be via a wireless or cellular interface. The communication interface 168 facilitates two-way communication between the computer 150 and another electronic device or system, e.g., a server computer or computers 126 provided by a content provider 120,130.

An Internet user (not shown) using the computer 150 may gain access to the Internet 190 by causing the browser 172 to execute, thereby opening a communication link between the communication interface 168 of the computer 150 and an Internet site 126 of content provider 120, via an Internet Service Provider (ISP) 180. Internet content is communicated by the content provider 120 to the computer 150 for display by browser 172. Alternatively, a content provider 120, 130 may also be an ISP 180.

In alternative embodiments, computer 150 may be a desktop or notebook computer, PDA, hand held device, or wireless phone (with graphics capability), or any other device now known or hereafter developed that is capable of performing the functions as described herein.

In accordance with an embodiment of the disclosure, a first Internet content provider 120 may provide an Internet user with access to a program 122 for controlling the browser 172. When executed by the user, the controlling program 122 downloads or creates a client-side module 174 such as, for example, a Dynamic Link Library (DLL), on the data storage device 152 of the Internet user's computer 150. The client-side module 174 preferably includes ActiveX control or Plug-in functionality, but is essentially executable software code. Thereafter, when the Internet user accesses the Internet using the browser 172, the browser 172 opens the client-side module 174 and preferably automatically establishes a connection to the content provider's Internet site 126. The content provider, in response to the connection established by the browser 172, loads information and/or functional data into a shell operating within the browser and created by the client-side module 174. For example, if the user has an account with the content provider 120, customized information and/or functionality may be loaded into the client-side module 174. If the user does not have an account, more generalized (e.g., guest) information and/or functionality may be loaded. If no connection to the content provider is available, default information and/or functionality may be loaded.

The client-side module 174 essentially opens a shell (or a plurality of shells) within the browser 172 that contains the ActiveX control or Plug-in code or other executable software that may control, i.e., add, remove, and/or modify, the Internet browser 172. When loaded with the ActiveX control or Plug-in, the client-side module 174 preferably contains functions, objects, data, and other software, referred to generally herein as information, that may be used to control the browser 172. The present disclosure ensures that the client-side module 174 (and shell) does not close when the Internet user moves, for example, from Internet site 126 (having a Web page 124) to Internet site 136 (having Web page 134). Thus, the information and/or functionality provided via the ActiveX control or Plug-in is not lost when the Internet user disconnects from the Internet site that loaded the ActiveX control or Plug-in, and connects to another Internet site. In alternate embodiments client-side module 174 may be located at a remote location from the Internet user.

An embodiment of the disclosure may be provided as a feature of a method of controlling an Internet browser interface displayable by an Internet browser on a display of a computer, and enabling a user of the computer and Internet browser to access and navigate the Internet and to receive and display on the computer display one or more Web pages from one or more Internet sites, including the display of a Web page from a predetermined Internet site, the Internet browser having at least one Internet browser toolbar having at least one toolbar button providing a predetermined functionality to the user of the computer and Internet browser, the method can comprise providing, at the predetermined Internet site, access to a program for controlling the Internet browser interface and making available for downloading by the predetermined Internet site, a file for causing the display of a persistent user toolbar adjacent to said Internet browser toolbar so as to create the visual impression that the user toolbar is an integrated part of the Internet browser, the user toolbar making additional functionality that is not part of the Internet browser prior to download available to the user after download as part of the Internet browser interface, such that once the user toolbar is displayed the user toolbar remains displayed and said additional functionality remains available to the user regardless of a subsequent Internet site to which the Internet browser is caused to navigate after download. Such a method is described in further detail in U.S. patent application Ser. No. 09/429,585, filed Oct. 28, 1999, published Aug. 26, 2004 as Publication No. 2004/0165007, and entitled “A Method Of Controlling An Internet Browser Interface And A Controllable Browser Interface,” the contents of which are hereby incorporated by reference herein.

A method of controlling a browser as further described herein may be implemented using, by way of non-limiting example, a downloadable toolbar. An Internet user may customize the browser so that each time the user accesses the Internet using the browser, user-defined information and/or functionality, e.g., a customizable button on a toolbar, will be displayed with the browser interface. The toolbar may also include bookmarks, address and phone books, personal financial information, personalized news, and/or various functionality such as is available via ActiveX control and Plug-ins or other software code. When the toolbar is executed, the client-side module 174 can receive some, none or all of the toolbar buttons from a content provider 120. The toolbar buttons and their characteristics may be obtained through a feed from the content provider 120 to the client computer 150.

In addition, if an Internet user has an account with a content provider 120, that user's specific account information (e.g., investment portfolio, news headlines, bookmarks, address book, customized button etc.) may be saved by the content provider 120 and dynamically displayed by different browsers on different computers. Also, two or more Internet users who share the same computer, but have different user accounts with a content provider 120 can each load their own account information, e.g., their personal customizable button or buttons, so that each user's personal buttons are displayed when that user logs into his or her respective account. Furthermore, there may be different levels of accounts offered by the content provider, each with varying levels of privileges. Therefore, different account types may offer different buttons depending on the features of privileges associated with each account. Even further, the content provider may work with a partner and desire to offer certain selections to users of that provider. Utilizing an account associated with the content provider to specify such options allows any level of customization to be provided.

FIG. 2 illustrates an exemplary embodiment of a method 200 for providing a button of a graphical user interface to launch an external application.

In one embodiment, once it has been determined that an application is to be launched through the use of a button, the content provider associates the application with an identification code as is indicated at step 210. The identification code is preferably used instead of the file path, application location, or other information necessary to launch the application, for security purposes. The identification code may be in any form, however in one embodiment a relatively short alphanumerical code is used. For example, in the case of an AntiSpy application, the identification code could simply be the two letter code “as”.

In one embodiment, the content provider pre-configures the client side module to recognize the identification code as indicated at step 220. More particularly, the client side module is pre-configured with the information necessary to launch the application which is referenced by using the identification code. The information to launch the application preferably includes the application's file path.

In other embodiments, a more indirect method of identifying the location of the application to be launched is used. For example, instead of using the direct file path, another location that holds the path is hard-coded into the client. Generally, the information required to launch an application is specific to the Operating System (OS) running on the computer. For example, in the case of a Microsoft WINDOWS OS, one or more registry location(s) is associated with the identification code and pre-configured into the client side module. The windows registry location(s), in turn, provides the path to the executable and/or the Windows shell command used to launch the application. The mapping of identification code to registry location is preconfigured into the client binary, to avoid exposing this to a third party watching the data transmitted from the client side module provider or button or toolbar provider. Such a use of an indirect method of identifying the location of the application to be launched allows the application executable path to change without having to redeploy a new client side module or toolbar. Instead, the registry settings can simply be updated. For other operating systems, alternative means would be used.

The information to launch the application should preferably be pre-configured in a secure way, such that the information cannot be easily viewed or modified. In some embodiments, the content provider may pre-configure the client with a plurality of identification codes, perhaps anticipating any number of applications that may be desired to be launched in the future, by associating one of the pre-configured identification codes with a later deployed application.

In an embodiment of the disclosure, a user would receive, e.g., download, the client side module 174 from a content provider 120. The content provider 120 connects with a client computer 150. Content provider 120 may connect with client computers through a server 126. The server 126 may then provide the client 150 with, e.g., a web page, including a number of different options such as creating a new account, signing into an existing account, and downloading a client side module 174. The content provider is optionally a different entity than the entity that made available the browser, or may be the browser provider providing the functionality described herein at a time after the initial install of the browser when such functionality was absent.

Once the client-side module 174 is obtained, installed, and executed by the client 150, e.g., in response to the user executing a browser application, in an embodiment of the disclosure, the client-side module 174 automatically (or otherwise) connects with a content provider 120. Thus, method 200 proceeds from step 220 to step 230 where the content provider 120 connects with the client 150. The content provider can be content provider 120, from which client-side module 174 is downloaded, or alternatively, the content provider can be another site, e.g., content provider 130.

At this point, the content provider may transmit information to the client side module such as user preferences, button characteristics, etc. For example, specific user preferences may be stored with the content provider and are loaded initially upon connection.

An embodiment of the present disclosure includes providing one or more buttons, used with a downloadable toolbar for an Internet browser, which are configured to launch an external application. The method comprises associating the application to be launched with an identification code, pre-configuring the client with the identification code and information necessary to launch the application, and transmitting a plurality of button characteristics which define button behavior. The step of transmitting button characteristics is shown at 240. In the case of launching an external application, button characteristics comprise at least the application identification code.

It is foreseen that the information necessary to launch the application may not always be available. This may be because the application to be launched is not installed on the user's computer, or the information necessary to launch the application is not present within the client side module. Therefore, in some embodiments, button characteristics further include a fallback URL such that the user will be directed to install the application if it is not already installed. Furthermore, the client side module may be updated to include the proper application launch information and identification codes as is indicated at step 250. The terms URL (uniform resource locator) and URI (uniform resource identifier) are used interchangeably herein.

In one embodiment, the current or latest version number of the application to be launched may further be provided as a button characteristic. Therefore, when the button to launch an application is activated by a user, a check is performed to ensure that the application to be launched is the most recently available version. This may be done as a simple comparison of the version number transmitted by the content provider and associated with the button against the version number of the application installed on the user's computer. This can be accomplished through use of ActiveX controls and functions. If it is determined that the version of the installed application is less than the latest available version, the fallback URL will be accessed to prompt the user to download and install the latest version.

In some cases, it may be desired for the content provider to require that an application be updated to a new version. Therefore, in yet another embodiment, a further parameter called “forced update” is included with the button characteristics transmitted by the content provider. The forced update parameter can be used to force the user to update the application to a new version.

In yet another embodiment, the application to be launched is digitally signed. In such an embodiment, the client further verifies the signature of the application to be launched before launching, to further protect the user from malicious software changes. In the case that the signature check fails, the application will not launch and the browser is redirected to open a window to a URL indicating an error occurred and a reinstall of the application is required. Industry standard algorithms which are well known in the art for creating and reading a digital signature are used. In one embodiment, the client is pre-configured to perform a digital signature check based on the identification code received. Alternatively, the signature check requirement can be passed as a parameter to the button, along with the identification code or other button characteristics.

Even further, the digital signature can be checked across multiple partners or providers. For example, the content provider can check against its own digital signature or the digital signature of a partner. For example, the content provider (i.e. Yahoo) can check the signature of a partner's (i.e. an Internet Service Provider) executable and provide the partner's users with access to launch the executable from a partner-cobranded Toolbar.

In one embodiment, the button to launch an application may be configured by the user such that an application of their preference is launched. The button for launching an application may be requested by the user as a customizable button, as part of a request for the contents of a downloadable toolbar. For example, there may be certain applications that are used on a regular basis by the user and the user may desire to have easy access to launching the application.

Alternatively, a content provider may automatically configure and transmit a button for launching an application. For example, the content provider may offer applications that work in cooperation with the content provided.

FIG. 3 is a flowchart illustrating an exemplary process 300 of launching an application through a button on a browser according to an embodiment of the disclosure. Process 300 is generally shown from the client's perspective. The client side module, which works in communication with the buttons in accordance with the present disclosure, recognizes when a button to launch an application has been activated by the user as is indicated at 310. This may be accomplished through commonly used or know ActiveX Controls and/or functions. As previously described, the button to launch an application has certain button characteristics associated with it. The button characteristics are passed to the client side module, and a series of checks occur.

The application identification code is one of the button characteristics. As indicated at 320, the application identification code is checked to see if it is recognized by the client side module. The client side module generally comes pre-configured with a plurality of identification codes and the related information necessary to launch the application. If the information necessary to launch the application (i.e. file path or registry location) is present within the client side module, processing continues to step 330 where a version check occurs.

The version check preferably comprises using ActiveX controls to determine the version of the application currently installed on the client's machine, and comparing with the version number transmitted by the content provider as being the latest available version. If the version of the installed application is less than, or older, than the version number transmitted as one of the button characteristics by the content provider, the user may be prompted to upgrade the application to the latest available version.

Such an update may not be required and may be at the discretion of the user. However, in some embodiments, the content provider may also transmit a forced update parameter, which forces the user to update to a newer version of the application. Such a check is indicated at 340. The forced update parameter for example may simply be “yes” or “no”, or “0” or “1”.

If it is determined that the application should be updated, processing proceeds to step 360. As mentioned previously, the content provider transmits a fallback URL as one of the button characteristics. The fallback URL is preferably used when the identification code associated with the button is not recognized by the client side module. The fallback URL is also preferably used when it has been determined that the version of the installed application is not the latest version available. The fallback URL can further be used when it has been determined that a forced update is to occur, as may be determined by the content provider.

In any case, the fallback URL directs the user to a location where the application to be launched by the button can be downloaded, as is indicated at 360. The fallback URL is entered into the browser and the user is automatically navigated to the site where the latest version of the application can be installed. Installation of the application, whether for the first time, or as an updated version, occurs at step 370.

It may also be necessary for the client side module to be updated. For example, if a new application is installed, the client side module may also need to be updated with the proper information for launching the application, as well as the associated identification code. Such an update is indicated as step 380.

The application is finally launched as indicated at 350. Again, this is accomplished by using the application identification code associated with the button, which is then used to reference the information necessary to launch the application, such as the registry location which in turn identifies the path of the application, as is pre-configured within the client side module.

In yet another embodiment, the client side module does not need to be pre-configured with an identification code, or updated to include an identification code, to launch an application. Instead, the client side module is configured to support a means to invoke a separate COM (Component Object Model) object binary when a specific button is pressed.

Microsoft COM technology in the Microsoft Windows-family of Operating Systems enables software components to communicate. COM is used to create re-usable software components, link components together to build applications, and take advantage of Windows services. The family of COM technologies includes COM+, Distributed COM (DCOM) and ActiveX® Controls.

For example, a COM interface can be implemented by COM objects (digitally signed by a content provider), to extend the functionality of the client. When the button to launch an application is clicked, the client responds by loading a COM object specified by a GUID passed in from the server and associated with the button. The GUID is just another parameter like the identification code and version (e.g. id=“as” version=“1.11”). Using the GUID value, the client will locate the path to the COM object's binary (a DLL) from the Registry, verify the signature on that binary as Yahoo (or a partner), invoke the “get_Version” method and check if it's up-to-date, then invoke the “HandleAction” method, passing in the identification code. The COM object can launch an application associated with that identification code. As with other embodiments, a fallback URL can also be used if the application associated with the GUID isn't located on the system or if the version is out of date.

In such an embodiment, a new button configuration can be created on the server end, including a new application identification code, and the configuration sent to the client. This allows an application that was deployed after our client binary was installed to be launched by the client, without having to update the client binary code.

FIG. 4 is an exemplary screen shot illustrating a browser 400 implemented according to an embodiment of the disclosure. Browser 400 includes a plurality of windows that provide various functionalities to an Internet user. The browser 400 may comprise a first application window 405 that typically defines the general size, color, and layout of the browser 400 and includes window control buttons 470 (e.g., minimize, close, etc.) for that application window 405. The browser 400 may also comprise a browser window 415 for viewing web content like web pages and toolbar windows 410 in a user interface area. The toolbar windows 410 typically define information and/or functionality that is a user interface to assist an Internet user when accessing and navigating the Internet. For example, the toolbar windows 410 may provide toolbars, pull-down menus, Plugins, applications, etc. A browser window 415 is provided as part of the browser 400 within which content from an Internet content provider 120 (see FIG. 1) may be displayed.

Toolbar windows 410 provided at the top (see FIG. 4) of the application window 405 define four toolbars 425, 430, 435, 440, which may include a variety of interface controls such as, for example, pull-down menus, functional buttons (e.g., stop, back, forward, home, etc.), and a combination of functional buttons and windows (e.g., a search button arid window). The upper most toolbar 425 provides a plurality of pulldown menus; the second toolbar from the top 430 provides a plurality of functional buttons; the third toolbar from the top 435 provides a pull-down menu and a window, e.g., a URL address window; the bottom most toolbar 440 is executed by the client-side module 174 and provides added functionality to the browser such as a search field and a button to launch an external application, e.g., button 445. Toolbar 440 in one embodiment is provided by another provider other than the provider of the browser.

FIGS. 5 a and 5 b are screenshots illustrating an exemplary embodiment of the bottom most toolbar 440 in accordance with the teachings of the present disclosure. Toolbar 440 includes a shortcut button to a content provider 515, e.g., www.yahoo.com, a toolbar settings button 525, a search field 530, a button for launching an application 445, a shortcut button to a customizable webpage 550, and other menu buttons 555 having a drop down menu including items such as shortcuts to news, weather, shopping, and auctions. The button for launching an application 445 may include an icon, a button title, and a drop down menu button.

FIG. 5 b illustrates the toolbar when the drop down menu button of button 445 has been selected. When the drop down menu button of button 445 is selected, an exemplary drop down menu including multiple items appears. At the top of the drop down menu is the option for launching an application—in this exemplary embodiment—“Run Anti-Spy . . . ” 505. Several other items are listed below, including options for “Help”, “Anti-Spy Community”, “Submit Feedback”, and “Tell a friend about Anti-Spy” 510. These items can be selected by an Internet user and generally comprise a link or URL to navigate them to another page in the internet browser.

FIGS. 6 and 7 are screen shots of an exemplary embodiment as detailed in the present disclosure. FIG. 6 illustrates a screen shot of an exemplary embodiment wherein an internet browser 405 having a toolbar 440 is configured with a button 445 for launching an external application. Button 445 has a drop down menu with several options. In the exemplary embodiment as shown in the Figures, a content provider offers and/or partners with a provider of an anti-spy application. Button 445 is provided on toolbar 440 for launching the anti-spy application. When button 445 is activated by the user, the anti-spy application is launched.

FIG. 7 illustrates the anti-spy application 710 launched after the button 445 has been activated by the user. Any type of application can be launched using the button in accordance with the present disclosure. For example, a music player could be launched using the application. A content provider can take advantage of using the button in accordance with the present disclosure to promote or advertise the use of certain applications.

While the embodiment above describes a buttons for launching an external application, the disclosure is not limited to this case. Thus, while there have been shown and described and pointed out fundamental novel features of the disclosure as applied to preferred embodiments thereof, it will be understood that various omissions and substitutions and changes in the form and details of the disclosed disclosure may be made by those skilled in the art without departing from the spirit of the disclosure. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.

While the apparatus and method have been described in terms of what are presently considered to be the most practical and preferred embodiments, it is to be understood that the disclosure need not be limited to the disclosed embodiments. It is intended to cover various modifications and similar arrangements included within the spirit and scope of the claims, the scope of which should be accorded the broadest interpretation so as to encompass all such modifications and similar structures. The present disclosure includes any and all embodiments of the following claims. 

1. A method of providing a button of a graphical user interface with the ability to launch an external application, comprising: associating the external application to be launched with an identification code; pre-configuring a client side module with the identification code and information necessary to launch the external application; and communicating the identification code to the client side module for association with the button.
 2. The method of claim 1 further comprising transmitting a fallback URL such that if the external application is not installed, the user is redirected to a site where the application can be installed.
 3. The method of claim 1 further comprising transmitting the latest available version number of the external application such that the user is notified if there is a newer version available.
 4. The method of claim 1 wherein the information necessary to launch the external application is a file path.
 5. The method of claim 1 wherein the information necessary to launch the external application is a registry location.
 6. The method of claim 1 wherein the information necessary to launch the external application is pre-configured in a secure manner.
 7. The method of claim 1 wherein the graphical user interface is a portion of an internet browser.
 8. The method of claim 1 wherein the client side module is a downloadable toolbar.
 9. The method of claim 1 wherein the button is part of a downloadable toolbar.
 10. The method of claim 1 wherein the button is implemented using ActiveX control.
 11. The method of claim 1 wherein a plurality of identification codes are pre-configured into the client side module.
 12. The method of claim 1 wherein the client side module is automatically updated to include the identification code and information necessary to launch the external application if not present.
 13. A method of launching an application through a button of an internet browser comprising: receiving button characteristics at a client side module and associating the button characteristics with the button, the button characteristics comprising at least an identification code, the identification code being representative of the application to be launched; recognizing when the button has been activated by the user; querying the client side module in communication with the button for information regarding the application matching the identification code in response to the button being activated by the user; querying the client side module for information regarding the version of the application to compare with the version number; and calling a function to launch the application having the associated identification code.
 14. The method of claim 13 wherein the client side module is pre-configured with the identification code.
 15. The method of claim 13 wherein the button characteristics are determined by a content provider.
 16. The method of claim 13 wherein the button characteristics are requested by the user.
 17. The method of claim 14 wherein the client side module is further pre-configured with information necessary to launch the application.
 18. The method of claim 15 wherein the information necessary to launch the application comprises a file path.
 19. The method of claim 1 wherein the information necessary to launch the external application is a registry location.
 20. The method of claim 18 wherein the file path of the application to be launched is hidden from the user.
 21. The method of claim 13 further comprising transmitting a fallback URL such that if the identification code is not recognized, the user is redirected to a site where the application can be installed.
 22. The method of claim 13 wherein the client side module is a downloadable toolbar.
 23. The method of claim 13 wherein the button is part of a downloadable toolbar.
 24. The method of claim 13 wherein the button is implemented using ActiveX control.
 25. A user interface comprising a button with the ability to launch an external application, the button associated with software executable to perform steps comprising: recognizing an association of the external application to be launched with an identification code; utilizing a first software module that is pre-configured with the identification code and information necessary to launch the external application; and communicating the identification code to the first software module for association with the button.
 26. The method of claim 25 further comprising receiving a fallback URL such that if the application is not installed, the user is redirected to a site where the application can be installed.
 27. The method of claim 25 further comprising receiving the latest available version number of the external application such that the user is notified if there is a newer version available.
 28. The method of claim 25 wherein the information necessary to launch the external application is a file path.
 29. The method of claim 1 wherein the information necessary to launch the external application is a registry location.
 30. The method of claim 25 wherein the information necessary to launch the external application is pre-configured in a secure manner.
 31. The method of claim 25 wherein the graphical user interface is a portion of an internet browser.
 32. The method of claim 25 wherein the client side module is a downloadable toolbar.
 33. The method of claim 25 wherein the button is part of a downloadable toolbar.
 34. The method of claim 25 wherein the button is implemented using ActiveX control.
 35. The method of claim 25 wherein a plurality of identification codes are pre-configured into the client side module.
 36. The method of claim 25 wherein the client side module is automatically updated to include the identification code and information necessary to launch the external application if not present.
 37. A user interface for a browser comprising a button implemented by software code provided by a provider other than a provider of the browser, the button having the ability to launch an external application, the button associated with software executable to perform steps in a computer, comprising: recognizing an association of the external application to be launched with an identification code; utilizing a first software module that is pre-configured with the identification code and information necessary to launch the external application; and communicating the identification code to the first software module for association with the button.
 38. The method of claim 37 further comprising receiving a fallback URL such that if the external application is not installed, the user is redirected to a site where the application can be installed.
 39. The method of claim 37 further comprising receiving the latest available version number of the external application such that the user is notified if there is a newer version available.
 40. The method of claim 37 wherein the information necessary to launch the external application is a registry location.
 41. The method of claim 40 wherein the registry location is pre-configured in a secure manner.
 42. The method of claim 37 wherein the button is part of a downloadable toolbar.
 43. The method of claim 37 wherein the button is implemented using ActiveX control.
 44. The method of claim 37 wherein the first software module is automatically updated to include the identification code and information necessary to launch the external application if not present.
 45. A server configured to communicate to a client computer an application, the application operative to execute functions in a computer, comprising: instantiating in a user interface a button with the ability to launch an external application, the button associated with software executable to perform steps comprising: recognizing an association of the external application to be launched with an identification code; utilizing a first software module that is pre-configured with the identification code and information necessary to launch the external application; and communicating the identification code to the first software module for association with the button.
 46. The method of claim 45 further comprising receiving a fallback URL such that if the external application is not installed, the user is redirected to a site where the application can be installed.
 47. The method of claim 45 further comprising receiving the latest available version number of the external application such that the user is notified if there is a newer version available.
 48. The method of claim 45 wherein the information necessary to launch the external application is a registry location.
 49. The method of claim 48 wherein the registry location is pre-configured in a secure manner.
 50. The method of claim 45 wherein the button is part of a downloadable toolbar.
 51. The method of claim 45 wherein the button is implemented using ActiveX control.
 52. The method of claim 45 wherein the first software module is automatically updated to include the identification code and information necessary to launch the external application if not present.
 53. The method of claim 13 wherein button characteristics further comprise a digital signature.
 54. The method of claim 53 wherein the digital signature is used to compare with the digital signature of the application to be launched in order to verify its authenticity.
 55. A method of launching an application through a button of an internet browser comprising: associating an identification code with the application to be launched; assigning button characteristics to the button, the button characteristics comprising the identification code, a fallback URL, and a current version number; recognizing when the button has been activated by the user; querying a client side module in communication with the button for information regarding the location of the application matching the identification code; comparing the version of the application with the current version number; redirecting the user to a site where the application can be updated if the current version number is greater than the version of the application; and calling the function to launch the application having the associated identification code.
 56. The method of claim 1 wherein the client side module signs into an account with a content provider.
 57. The method of claim 56 wherein the identification code is stored at a central location and associated with the account.
 58. The method of claim 57 wherein the identification code can be configured by a user of the account.
 59. The method of claim 15 wherein the user has an account with the content provider, and the button characteristics are associated with the account.
 60. The method of claim 59 wherein the button characteristics are dependent on the level of the account.
 61. The method of claim 59 wherein the button characteristics are configurable by the user of the account. 